Skip to content

019fd304 anatomy - #6

Open
resarytrew wants to merge 8 commits into
thebuggeddev:mainfrom
resarytrew:arena/019fd304-anatomy
Open

019fd304 anatomy#6
resarytrew wants to merge 8 commits into
thebuggeddev:mainfrom
resarytrew:arena/019fd304-anatomy

Conversation

@resarytrew

Copy link
Copy Markdown

No description provided.

resarytrew and others added 8 commits August 5, 2026 17:47
Co-authored-by: arena-agent <297053741+arena-agent@users.noreply.github.com>
- New i18n module (app/lib/i18n.tsx): language store via useSyncExternalStore
  (hydration-safe, persists choice in localStorage, defaults to browser
  language), 88 UI strings per language, fmt() template helper.
- New app/lib/anatomy-ru.ts: full Russian translations for all 9 organs —
  descriptions, key facts, conditions, hotspot labels — plus genitive-case
  forms so Russian templates stay grammatically correct.
- Language switcher (EN/RU) in the topbar; viewer hotspots, search, quiz,
  modals and 3D canvas aria-label all switch without reloading the model
  (viewer.updateHotspots).
- Fix two factual issues flagged in REVIEW.md: pancreas classified as
  Digestive & Endocrine, intestine length clarifies small vs large intestine.

Co-authored-by: arena-agent <297053741+arena-agent@users.noreply.github.com>
The single-page app needs no Context.Provider; components subscribe to the
module-level store via useSyncExternalStore directly. This removes the React
19 dev warning about multiple renderers sharing a context provider during
vinext HMR updates and keeps hydration-safe SSR (getServerSnapshot = en).

Co-authored-by: arena-agent <297053741+arena-agent@users.noreply.github.com>
…on, sources

- Real quiz engine: 45 bilingual questions (5 per organ) with immediate
  feedback, educational explanations, live score and retry flow
  (app/lib/content/questions.ts, QuizFlow).
- Body systems view: 12 systems with bilingual descriptions and organ
  membership; Systems nav button now works; preselects the current
  organ's system (app/lib/content/systems.ts, SystemsView).
- Structured lessons: learning objectives, structure, function, clinical
  perspective and bibliography per organ, EN and RU (app/lib/content/lessons.ts,
  LessonContent). Russian lessons add Sinelnikov/Sapin references.
- Full comparison modal: 6-row property table between the organ and its
  reference counterpart (CompareTable).
- Medical disclaimer footer and 'educational, not medical advice' note in
  lessons.
- Search now covers descriptions, tissues, conditions and hotspot labels.
- Content integrity tests (tests/content-data.test.mjs): 20 checks covering
  quiz validity, system coverage and lesson completeness.

Co-authored-by: arena-agent <297053741+arena-agent@users.noreply.github.com>
…view

- Real function animations in the 3D viewer, procedural and bilingual:
  heart lub-dub cycle, lung breathing, peristalsis, eye scanning, organ
  pulses and glandular bobs. 'Animate' now animates the actual model in
  the viewer with a labelled chip (play + stop) instead of a static modal
  (app/lib/content/animations.ts, viewer.setFunctionAnimation).
- Labelled histology per organ in every lesson: tissue layers with
  one-line descriptions, EN and RU (app/lib/content/histology.ts).
- Quiz results now include an answer review: every missed question with
  your answer vs the correct one.
- Content tests extended to 38 checks (histology parity, animation
  labels/descriptions).

Co-authored-by: arena-agent <297053741+arena-agent@users.noreply.github.com>
- 21 new organs across all 12 systems: stomach, gallbladder, esophagus,
  tongue, spleen, thymus, lymph node, thyroid, adrenals, pituitary,
  trachea, larynx, bladder, uterus, ovary, testis, prostate, spinal cord,
  diaphragm, biceps, femur.
- scripts/generate-organs.mjs: procedural GLB models (Three.js +
  GLTFExporter, 20-150 KB each) fitted to the same normalized space as the
  original assets; hotspot coordinates are auto-snapped onto the model
  surface so the 3D dots land on the correct features.
- Full bilingual content for each new organ: EN/RU data, systems
  membership, 3-question quiz bank (63 questions), structured lessons,
  3-layer histology, function animations; search covers all of it.
- tsconfig: allowImportingTsExtensions so Node-based content tests can
  import TS modules directly.
- Content tests now run 124 checks across 30 organs, RU parity, systems
  coverage, lessons, histology and animations.

Co-authored-by: arena-agent <297053741+arena-agent@users.noreply.github.com>
- Progress store (app/lib/progress.ts): visited organs, lesson views,
  animation plays, quiz results (best/attempts), saved organs and per-organ
  notes — persisted in localStorage, hydration-safe via useSyncExternalStore.
- Profile modal: statistics (organs explored, quizzes taken, lessons viewed,
  animations played), average best quiz score, per-organ progress bars with
  lesson/animation/saved icons, saved organs chips, notes list, clear-progress
  action. Library/Notes nav buttons and the profile button now open it.
- Notes modal: per-organ notes with auto-save and quick switching between
  organs that have notes.
- Organ library: bookmark button saves the current organ; 'Saved' filter
  shows the collection; saved organs carry a bookmark dot.
- Medical imaging: per-organ modality + clinical note (EN/RU) in every
  lesson; 12 schematic imaging illustrations (X-ray/CT/MRI/ultrasound style,
  webp + 2 svg) in public/imaging, always labeled as schematic educational
  images, never real clinical scans.
- Tests extended to 156 checks (imaging parity + file existence, progress
  store logic).

Co-authored-by: arena-agent <297053741+arena-agent@users.noreply.github.com>
- New route /systems (app/systems/page.tsx + SystemsPage): full-page
  overview of the twelve body systems.
- BodyFigure: stylised SVG human figure with all 30 modelled organs as
  clickable shapes; selecting a system highlights its organs and dims the
  rest; 12-colour system palette shared with the legend; keyboard
  accessible (Enter/Space).
- Left panel: system list with colour dots and organ counts. Right panel:
  system description and organ chips that deep-link to the organ on the
  home page. Footer note on how the systems work together.
- Home page now accepts deep links: /?organ=<id> selects an organ and
  /?modal=lesson|profile|notes opens a modal (server-driven via searchParams
  + remount key — no client-only state sync needed).
- Header navigation becomes links on the systems page; home 'Systems'
  button links to /systems; the old in-modal SystemsView is removed.
- BodyFigure exports SYSTEM_COLORS; organ groups carry id=organ-<id>.

Co-authored-by: arena-agent <297053741+arena-agent@users.noreply.github.com>
@vercel

vercel Bot commented Aug 5, 2026

Copy link
Copy Markdown

@resarytrew is attempting to deploy a commit to the thebuggeddev-9222's projects Team on Vercel.

A member of the Team first needs to authorize it.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant